(load 'alfa)
(load 'iota)

;Distribuir Lista Lista (todos con todos) (1 2) (1 2) ---> ( ((1 1) (1 2)) ((2 1) (2 2)) )
(defun DISTRIB_L_L (L1 L2)
	(IF (NULL L1) NIL
		(CONS (DISTRIB_A_L (CAR L1) L2) (DISTRIB_L_L (CDR L1) L2))
	)
)

;Distribuir Atomo Lista (A con todos) -> 1 (1 2) -> ((1 1) (1 2))
(defun DISTRIB_A_L (A L)
	(IF (NULL L) NIL
		(CONS (LIST A (CAR L)) (DISTRIB_A_L A (CDR L)))
	)
)

(defun TABLERO (N)
	(DISTRIB_L_L (IOTA N) (IOTA N))
)
